﻿/*----------------------------------------------------------------
// 公司名称：公司名称
//
// 产品名称：Gaf
//
// 创 建 人：netcasewqs
// 创建日期：2022/3/4
// 邮    箱：netcasewqs@qq.com
//
// Copyright (C) 2022 Gaf，保留所有权利。
//
//----------------------------------------------------------------*/


namespace Gaf
{
    /// <summary>
    /// 
    /// </summary>
    public interface IAddin
    {
        /// <summary>
        /// 插件清单配置信息
        /// </summary>
        IConfiguration? Manifest { get; }
        /// <summary>
        /// 
        /// </summary>
        IEnumerable<Assembly> Assemblies { get; }

        /// <summary>
        /// 插件导出的服务列表
        /// </summary>
        IEnumerable<ServiceDescriptor> Services { get; }
        /// <summary>
        /// 
        /// </summary>
        string? Copyright { get; }
        /// <summary>
        /// 
        /// </summary>
        string? Description { get; }
        /// <summary>
        /// 
        /// </summary>
        int Id { get; }
        /// <summary>
        /// 
        /// </summary>
        string Location { get; }
        /// <summary>
        /// 
        /// </summary>
        string Name { get; }
        /// <summary>
        /// 
        /// </summary>
        uint StartLevel { get; }

        /// <summary>
        /// 是否轻量级插件
        /// </summary>
        bool IsLiteAddin { get; }
        /// <summary>
        /// 
        /// </summary>
        AddinState State { get; }
        /// <summary>
        /// 
        /// </summary>
        string? Vendor { get; }
        /// <summary>
        /// 
        /// </summary>
        string? Version { get; }
    }
}